package com.nami.basic.packet;

import lombok.Data;

import java.io.Serializable;

/**
 * 描述：
 *
 * @Author: lbc
 * @Date: 2023-07-14 13:22
 * @email: 594599620@qq.com
 * @Description: keep coding
 */
@Data
public class Packet implements Serializable {

    private static final long serialVersionUID = -9325988132503202L;

    // 魔数 (1字节)
    private byte magic;

    /**
     * 消息操作指令(4字节)
     */
    private int cmd;

    /**
     * 1字节 版本号
     */
    private byte version;

    /**
     * 数据解析类型(1字节)
     * 子包加密算法
     */
    private byte encrypt;

    /**
     * 1字节 序列化算法
     * 子包序列化选择
     */
    private byte serial;

    /**
     * 4字节 包体长度
     */
    private int length;

    /**
     * 业务
     */
    private byte[] body;

    /**
     * 获取包数据长度
     *
     * @return
     */
    public int getLength() {
        if (null == body) {
            return 0;
        }
        return body.length;
    }

}
